package com.ruoyi.safe.service;

import com.ruoyi.safe.domain.BizExtensionRequests;
import com.ruoyi.safe.domain.dto.BizExtensionRequestsDTO;
import com.ruoyi.safe.domain.vo.BizExtensionRequestsVO;
import com.ruoyi.safe.domain.vo.ListRequestVo;

import java.util.List;

/**
 * 延期申请Service接口
 *
 * @author ruoyi
 * @date 2023-12-08
 */

public interface IBizExtensionRequestsService {

    /**
     * 查询延期申请
     *
     * @param id 延期申请主键
     * @return 延期申请
     */
    BizExtensionRequests selectBizExtensionRequestsById(Long id);

    /**
     * 查询延期申请列表
     *
     * @param bizExtensionRequests 延期申请
     * @return 延期申请集合
     */
    List<BizExtensionRequests> selectBizExtensionRequestsList(BizExtensionRequests bizExtensionRequests);

    /**
     * 新增延期申请
     *
     * @param bizExtensionRequests 延期申请
     * @return 结果
     */
    int insertBizExtensionRequests(BizExtensionRequests bizExtensionRequests);

    /**
     * 修改延期申请
     *
     * @param bizExtensionRequests 延期申请
     * @return 结果
     */
    int updateBizExtensionRequests(BizExtensionRequests bizExtensionRequests);

    /**
     * 批量删除延期申请
     *
     * @param ids 需要删除的延期申请主键集合
     * @return 结果
     */
    int deleteBizExtensionRequestsByIds(Long[] ids);

    /**
     * 删除延期申请信息
     *
     * @param id 延期申请主键
     * @return 结果
     */
    int deleteBizExtensionRequestsById(Long id);

    /**
     * 查询自己待批复的数量
     *
     * @param listRequestVo 通用请求参数
     * @return 结果
     */
    int selectBizExtensionRequestsCount(ListRequestVo listRequestVo);

    /**
     * 查询自己待批复的列表
     *
     * @param listRequestVo 通用请求参数
     * @return 结果
     */
    List<BizExtensionRequestsVO> getDelay(ListRequestVo listRequestVo);

    Boolean handleDelay(BizExtensionRequestsDTO bizExtensionRequestsDTO);

    /**
     * 新增延期申请
     *
     * @param extensionRequestsDTO 延期申请 app端
     * @return 结果
     */
    Boolean insertBizExtensionRequests(BizExtensionRequestsDTO extensionRequestsDTO);


}
